# -*- coding: utf-8 -*-
"""
@Time    : 2024/6/28 14:45 
@Author  : ZhangShenao 
@File    : function_as_param.py 
@Desc    : 一个函数也可以作为参数,传递给另一个函数
"""


def filter_nums(nums: list, nums_filter) -> list:
    """
    对list中的元素进行过滤,返回满足条件的值
    :param nums: 原始数据list
    :param nums_filter: 过滤器
    :return:  过滤后的list
    """

    return [n for n in nums if nums_filter(n)]  # list生成式


def even_num_filter(n: int) -> bool:
    """
    偶数过滤器
    :param n: 数字
    :return: 是否为偶数
    """
    return n % 2 == 0


# 调用函数,并将另一个函数作为参数传入
even_nums = filter_nums([n for n in range(1, 100)], even_num_filter)
print(even_nums)
